home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs10.d81 / dark88-4.sfx / m.1670.a1 (.txt) < prev    next >
Commodore BASIC  |  1990-02-12  |  4KB  |  236 lines

  1. 1000 REM *      DARKTERM '88
  2. 1010 REM * 1670 MODEM FILE SOURCE
  3. 1020 REM *
  4. 1030 OPEN1,8,15,"S0:D'88.1670":CLOSE1
  5. 1040 OPEN2,8,1,"0:D'88.1670"
  6. 1050 SYS700
  7. 1060 .OPT O2
  8. 1070 ;
  9. 1080 CHKIN  =$FFC6 ; KERNEL EQUATES
  10. 1090 CHKOUT =$FFC9
  11. 1100 CHRIN  =$FFCF
  12. 1110 CHROUT =$FFD2
  13. 1120 CLRCHN =$FFCC
  14. 1130 GETIN  =$FFE4
  15. 1140 ;
  16. 1150 PTR    =138 ; TEMPORARY POINTERS
  17. 1160 ST     =140
  18. 1170 PREFIX =930 ; DIALING PREFIX
  19. 1180 PRELEN =929 ; PREFIX LENGTH
  20. 1190 ;
  21. 1200 DETECT =922 ; CARRIER DETECT FLAG
  22. 1210 DDELAY =927 ; DIALING DELAY
  23. 1220 WDELAY =926 ; CARRIER WAIT DELAY
  24. 1230 HDELAY =925 ; ON-HOOK DELAY
  25. 1240 ;
  26. 1250 *=$4500 ; STARTS HERE UP TO $47FF
  27. 1260 ;
  28. 1270 JMP ANSWER ; AUTO-ANSWER
  29. 1280 JMP DODIAL ; AUTO-DIAL
  30. 1290 JMP ONHOOK ; LABEL SAYS ALL
  31. 1300 JMP OFHOOK ; OFF HOOK
  32. 1310 JMP CARCHK ; LOST CARRIER CHECK
  33. 1320 JMP CUSTOM ; USER DEFINED ROUTINE
  34. 1330 JMP HANGUP ; HANGUP ROUTINE
  35. 1340 ;
  36. 1350 DODIAL STX PTR ; X/Y POINT TO DIAL
  37. 1360 STY PTR+1 ; STRING (18 DIGITS)
  38. 1370 JSR RETURN ; SEND 2 <CR> TO BEGIN
  39. 1380 LDA HDELAY ; WAIT SOME
  40. 1390 JSR WAIT
  41. 1400 LDX #5
  42. 1410 JSR CHKOUT
  43. 1420 LDY #0
  44. 1430 DODO1 CPY PRELEN ; CHECK LENGTH
  45. 1440 BEQ DODO2 ; BEFORE SENDING IN CASE
  46. 1450 LDA PREFIX,Y ; THERE IS NO PREFIX
  47. 1460 JSR MODOUT
  48. 1470 INY
  49. 1480 BNE DODO1
  50. 1490 DODO2 LDY #0
  51. 1500 DODO3 LDA (PTR),Y ; GET STRING
  52. 1510 CMP #32 ; SKIP ALL BLANKS
  53. 1520 BEQ DODO4
  54. 1530 AND #127 ; MASK FOR ASCII
  55. 1540 JSR MODOUT
  56. 1550 DODO4 INY
  57. 1560 CPY #18 ; DO ALL 18 BYTES
  58. 1570 BNE DODO3
  59. 1580 LDA #13 ; SEND THE <CR>
  60. 1590 JSR MODOUT
  61. 1600 JSR CLRCHN
  62. 1610 LDA WDELAY ; AND WAIT FOR CARRIER
  63. 1620 JSR WAIT
  64. 1630 LDA 56577 ; HAVE ONE
  65. 1640 AND #16
  66. 1650 BEQ DODO5 ; YES
  67. 1660 SEC ; NOT ABORTED, SET C FLAG
  68. 1670 LDA #0 ; NO CARRIER, SET Z FLAG
  69. 1680 RTS
  70. 1690 DODO5 SEC ; SET C FLAG
  71. 1700 LDA #1 ; CARRIER, CLEAR Z FLAG
  72. 1710 RTS
  73. 1720 ;
  74. 1730 WAIT TAX
  75. 1740 W0 JSR CLRTIM ; CLEAR TI CLOCK
  76. 1750 W1 LDA 145 ; CHECK STOP KEY
  77. 1760 CMP #$7F
  78. 1770 BEQ W2 ; IF PRESSED, ABORT
  79. 1780 LDA 162
  80. 1790 CMP #60 ; ONE SECOND
  81. 1800 BCC W1
  82. 1810 DEX ; X NUMBER OF TIMES
  83. 1820 BEQ W3
  84. 1830 BNE W0
  85. 1840 W2 PLA
  86. 1850 PLA
  87. 1860 CLC ; CLEAR C FLAG - USER ABORTED
  88. 1870 W3 RTS
  89. 1880 ;
  90. 1890 ONHOOK LDA #70 ; WAIT ONE SEC...
  91. 1900 JSR JIFFY
  92. 1910 LDX #5
  93. 1920 JSR CHKOUT
  94. 1930 LDA #"+" ; SEND +++ SEQUENCE
  95. 1940 JSR MODOUT
  96. 1950 JSR MODOUT
  97. 1960 JSR MODOUT
  98. 1970 JSR CLRCHN
  99. 1980 LDA #70 ; WAIT ONE MORE SEC...
  100. 1990 JMP JIFFY
  101. 2000 ;
  102. 2010 OFHOOK JSR SMART ; OFF-HOOK
  103. 2020 .ASC "ATD"
  104. 2030 .BYT 13,0
  105. 2040 RTS
  106. 2050 ;
  107. 2060 SMART LDA 56577 ; SEND AT COMMANDS
  108. 2070 AND #16
  109. 2080 BNE SM1
  110. 2090 JSR ONHOOK ; HANG UP UNTIL NO
  111. 2100 JMP SMART ; CARRIER
  112. 2110 SM1 PLA ; GET STRING ADDRESS FROM
  113. 2120 STA ST ; RETURN ADDRESS
  114. 2130 PLA
  115. 2140 STA ST+1
  116. 2150 LDX #5
  117. 2160 JSR CHKOUT
  118. 2170 LDA #40 ; WAIT >.5 SEC...
  119. 2180 JSR JIFFY
  120. 2190 SM2 INC ST
  121. 2200 BNE SM3
  122. 2210 INC ST+1
  123. 2220 SM3 LDY #0
  124. 2230 LDA (ST),Y ; SEND COMMAND
  125. 2240 BEQ SM4
  126. 2250 JSR MODOUT
  127. 2260 JMP SM2
  128. 2270 SM4 JSR CLRCHN
  129. 2280 LDA #40 ; WAIT SOME MORE
  130. 2290 JSR JIFFY
  131. 2300 LDA ST+1 ; PUSH NEW RETURN ADDRESS
  132. 2310 PHA
  133. 2320 LDA ST
  134. 2330 PHA
  135. 2340 RTS
  136. 2350 ;
  137. 2360 MODOUT JSR CHROUT
  138. 2370 MODO1 LDX 669 ; WAIT FOR RS232 TO
  139. 2380 CPX 670 ; (null) IDLE BEFORE SENDING
  140. 2390 BNE MODO1 ; AGAIN
  141. 2400 RTS
  142. 2410 ;
  143. 2420 RETURN LDX #5
  144. 2430 JSR CHKOUT
  145. 2440 LDA #13
  146. 2450 JSR MODOUT
  147. 2460 JSR MODOUT
  148. 2470 JMP CLRCHN
  149. 2480 ;
  150. 2490 CUSTOM RTS ; NONE NEEDED FOR 1670
  151. 2500 ;
  152. 2510 CARCHK BIT DETECT ; IF DETECT IS
  153. 2520 BPL CAR1 ; 0 THEN IGNORE CARRIER
  154. 2530 LDA $DD01
  155. 2540 AND #16
  156. 2550 BEQ CAR1
  157. 2560 CLC ; DROPPED CARRIER
  158. 2570 RTS ; SO CLEAR C FLAG
  159. 2580 CAR1 SEC
  160. 2590 RTS
  161. 2600 ;
  162. 2610 CLRTIM LDA #0
  163. 2620 STA 160
  164. 2630 STA 161
  165. 2640 STA 162
  166. 2650 RTS
  167. 2660 ;
  168. 2670 JIFFY TAX ; WAIT SOME JIFFIES
  169. 2680 JSR CLRTIM
  170. 2690 JIF1 CPX 162
  171. 2700 BCS JIF1
  172. 2710 RTS
  173. 2720 ;
  174. 2730 ANSWER JSR RESET ; RESET MODEM
  175. 2740 ANS0 JSR SMART ; SEND AT ACK
  176. 2750 .ASC "AT"
  177. 2760 .BYT 13,0
  178. 2770 LDX #5
  179. 2780 JSR CHKIN
  180. 2790 JSR GETIN
  181. 2800 PHA
  182. 2810 JSR CLRCHN
  183. 2820 PLA
  184. 2830 AND #127
  185. 2840 CMP #"0" ; WAIT FOR OKAY RESPONSE
  186. 2850 BNE ANS0
  187. 2860 ANS1 LDX #5
  188. 2870 JSR CHKIN
  189. 2880 JSR GETIN ; WAIT FOR NUMERICAL
  190. 2890 PHA ; RESPONSE
  191. 2900 JSR CLRCHN
  192. 2910 PLA
  193. 2920 AND #127 ; DISCARD BIT 7
  194. 2930 CMP #"1" ; 300 BAUD
  195. 2940 BEQ ANS2 ; YES
  196. 2950 CMP #"5" ; 1200 BAUD
  197. 2960 BEQ ANS3 ; YES
  198. 2970 JSR GETIN ; GET KEY FROM KEYBOARD
  199. 2980 CMP #0
  200. 2990 BEQ ANS1
  201. 3000 CLC
  202. 3010 RTS
  203. 3020 ANS2 LDX #<300
  204. 3030 LDY #>300
  205. 3040 BNE ANS4
  206. 3050 ANS3 LDX #<1200
  207. 3060 LDY #>1200
  208. 3070 ANS4 SEC
  209. 3080 RTS
  210. 3090 ;
  211. 3100 RESET LDA $29B
  212. 3110 STA $29C
  213. 3120 JSR SMART
  214. 3130 .ASC "ATZ"
  215. 3140 .BYT 13,0
  216. 3150 LDA #75
  217. 3160 JSR JIFFY
  218. 3170 LDA $29B
  219. 3180 STA $29C
  220. 3190 JSR SMART
  221. 3200 .ASC "AT V0 M0 X1"
  222. 3210 .BYT 13,0
  223. 3220 LDA #75
  224. 3230 JMP JIFFY
  225. 3240 ;
  226. 3250 HANGUP JSR ONHOOK ; SEND +++ SEQ.
  227. 3260 JSR SMART ; SEND COMMAND STRING
  228. 3270 .ASC "ATD"
  229. 3280 .BYT 13,0
  230. 3290 LDA $DD01
  231. 3300 AND #16 ; CHECK CARRIER
  232. 3310 BEQ HANGUP ; STILL THERE, TRY MORE
  233. 3320 LDA $29B
  234. 3330 STA $29C
  235. 3340 RTS
  236.